From 7cdfee71da41d4ed3c6e81b2695e4bb932e9cd6c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 2 Nov 2015 20:25:09 +0100 Subject: [PATCH] inspector: Do not show transient nodes This is kind of a hack the way it's implemented, but it's necessary for performance to ignore transient nodes as they get created all the time (via gtk_style_context_save()) and invalidate the whole treeview. And that causes resizes and redrawing of the treeview and performance of the inspector would go down the drain now that we display a larger part of the node tree. --- gtk/inspector/gtktreemodelcssnode.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk/inspector/gtktreemodelcssnode.c b/gtk/inspector/gtktreemodelcssnode.c index 196335e3da..ee55211d0b 100644 --- a/gtk/inspector/gtktreemodelcssnode.c +++ b/gtk/inspector/gtktreemodelcssnode.c @@ -18,6 +18,7 @@ #include "config.h" #include "gtktreemodelcssnode.h" +#include "gtk/gtkcsstransientnodeprivate.h" struct _GtkTreeModelCssNodePrivate { @@ -471,6 +472,9 @@ gtk_tree_model_css_node_connect_node (GtkTreeModelCssNode *model, { GtkCssNode *child; + if (GTK_IS_CSS_TRANSIENT_NODE (node)) + return; + g_object_ref (node); g_signal_connect_after (node, "node-added", G_CALLBACK (child_added_cb), model); @@ -520,6 +524,9 @@ gtk_tree_model_css_node_disconnect_node (GtkTreeModelCssNode *model, { GtkCssNode *child; + if (GTK_IS_CSS_TRANSIENT_NODE (node)) + return; + g_signal_handlers_disconnect_by_func (node, G_CALLBACK (child_added_cb), model); g_signal_handlers_disconnect_by_func (node, G_CALLBACK (child_removed_cb), model); g_signal_handlers_disconnect_by_func (node, G_CALLBACK (notify_cb), model); -- 2.30.2